﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class MessageDialog : System.Web.UI.Page
{
    protected override void OnPreRender(EventArgs e)
    {
        HyperLink1.NavigateUrl = "~/MessageDialog.aspx?whom=" + Request["whom"];
        if (Request["send"] != null && Request["send"].Equals("yes"))
        {
            MultiView1.ActiveViewIndex = 1;
        }
        else
        {
            MultiView1.ActiveViewIndex = 0;
        }

        FromWhomHyperLink.Text = Request["whom"];
        FromWhomHyperLink.NavigateUrl = "~/PPage.aspx?login=" + Request["whom"];
        
        //нужно сделать проверку правильности пользователя (существует ли он и все в этом духе)
        //хотя в принципе это не надо, так как эту страницу может видеть только залогиненынй пользователь!
        //хотя надо, потому что если просто так залогиненый пользователь перейдет на это страницу безо всяких
        //параметров, то екзепшин!!
        string towhom = Request["whom"]; //получатель
        string fromwhom = HttpContext.Current.User.Identity.Name; //отправитель
        if (Request["whom"] == null)
        {
            StatusMessageLabel.Text = "Нет переписки с выбранным пользователем!";
            return; 
        }

        List<Util.Message> messList;
        if (new BLL.Messages().GetMessageList(towhom, fromwhom, out messList))
        {
            listBM.DataSource = messList;
            listBM.DataBind();
        }
        else
        {
            StatusMessageLabel.Text = "По неизветсной причине нельзя открыть Ваши сообщения! Попробуйте позже.";
        }

        if (MessGbookDataPager.TotalRowCount <= MessGbookDataPager.MaximumRows)
            MessGbookDataPager.Visible = false;

        if (MessGbookDataPager.TotalRowCount == 0)
            aboutNullMess.Text = "У вас нет сообщений!";
    }

    protected void SendLinkButton_Click(object sender, EventArgs e)
    {
        if (MessageText.Text.Length != 0)
        {
            string whom = Request["whom"];
            string fromwhom = HttpContext.Current.User.Identity.Name;
            string messText = MessageText.Text;
            string sendingdate = DateTime.Now.ToString();

            if (new BLL.Messages().SendMessage(fromwhom, whom, messText, sendingdate))
            {
                StatusLabel.Text = "Сообщение отправлено успешно!";
                Response.Redirect("~/MessageDialog.aspx?send=yes&whom=" + whom);
            }
            else
                StatusLabel.Text = "Из-за непонятных причин сообщение не доставлено!";
        }
        else
        {
            StatusLabel.Text = "Вы не ввели сообщение!";
        }
    }
}